package com.hz.ruoyiquality.mapper;

import com.hz.ruoyiquality.domain.dto.PendingOrderDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author bai
 * @date
 */
@Repository
@Mapper
public interface LgQualityOrderMapper {

    List<PendingOrderDTO> getPendingOrders(@Param("orderNumber") Integer orderNumber,
                                           @Param("goodsName") String goodsName,
                                           @Param("sellerName") String sellerName,
                                           @Param("status") Integer status,
                                           @Param("createBy") String createBy);
    /**
     * 根据质检员ID获取待检订单
     * @param inspectorId 质检员ID（可选）
     * @return 订单列表
     */
    List<PendingOrderDTO> selectPendingOrdersByInspectorId(@Param("inspectorId") Integer inspectorId);

    /**
     * 根据质检员ID获取   待入库和待出库订单订单
     * @param inspectorId 质检员ID（可选）
     * @return 订单列表
     */
    List<PendingOrderDTO> selectPendingOrdersByInspectorIdStatus(@Param("inspectorId") Integer inspectorId);



    /**
     * 更新订单状态
     * @param order 订单信息
     * @return 影响行数
     */
    int updatePendingOrder(PendingOrderDTO order);

    /**
     * 插入质检记录
     * @param order 订单信息
     * @return 影响行数
     */
    int insertQualityStatus(PendingOrderDTO order);


    /**
     * 插入待质检订单到质检状态表（lg_quality_status）
     */
    void insertPendingOrdersToQualityStatus();


    // 确保订单存在
    PendingOrderDTO selectPendingOrderById(@Param("orderNumber") Integer orderNumber);
    /**
     * 更新订单的质检员 ID
     */
    int updateInspector(@Param("orderNumber") Integer orderNumber, @Param("inspectorId") Integer inspectorId);

    String getOrderSource(@Param("orderNumber") Integer orderNumber);

    int updateInboundOrderStatus(@Param("orderNumber") Integer orderNumber);
    int updateOutOrderStatus(@Param("orderNumber") Integer orderNumber,@Param("inspectorId") Integer inspectorId);
}
